using System.ComponentModel.DataAnnotations;

namespace S.M.SmartMedical.Domain.DTOs
{
    /// <summary>
    /// 医院院区创建DTO
    /// 用于接收前端创建医院院区的请求数据
    /// </summary>
    public class HospitalAreaCreateDto
    {
        /// <summary>
        /// 院区名称
        /// </summary>
        [Required(ErrorMessage = "院区名称不能为空")]
        [MaxLength(100, ErrorMessage = "院区名称长度不能超过100个字符")]
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// 院区地址
        /// </summary>
        [Required(ErrorMessage = "院区地址不能为空")]
        [MaxLength(200, ErrorMessage = "院区地址长度不能超过200个字符")]
        public string Address { get; set; } = string.Empty;

        /// <summary>
        /// 联系电话
        /// </summary>
        [MaxLength(20, ErrorMessage = "联系电话长度不能超过20个字符")]
        public string? Phone { get; set; }

        /// <summary>
        /// 院区描述
        /// </summary>
        [MaxLength(500, ErrorMessage = "院区描述长度不能超过500个字符")]
        public string? Description { get; set; }

        /// <summary>
        /// 是否支持自助开单
        /// </summary>
        public bool IsSelfServiceEnabled { get; set; } = true;

        /// <summary>
        /// 院区标签列表
        /// </summary>
        public List<string> Tags { get; set; } = new List<string>();

        /// <summary>
        /// 经度
        /// </summary>
        public decimal? Longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public decimal? Latitude { get; set; }

        /// <summary>
        /// 排序顺序
        /// </summary>
        public int SortOrder { get; set; } = 0;
    }
}